在這篇文章中,我們將探討如何在待辦事項管理應用中整合SQLite資料庫,以便儲存待辦事項資料。以下是實作此功能的步驟:
首先,確保在 build.gradle
文件中新增SQLite的依賴。對於大多數Android專案,SQLite是內建的,但如果需要使用Room庫來簡化資料庫操作,則需要新增以下依賴:
implementation 'androidx.room:room-runtime:2.4.2'
annotationProcessor 'androidx.room:room-compiler:2.4.2' // For Java
接下來,我們需要創建一個資料庫實體類,這個類將映射到SQLite資料庫中的表。對於待辦事項,我們可以創建一個 TodoItem
類,並使用Room的註解來標記其屬性。
@Entity(tableName = "todo_items")
public class TodoItem {
@PrimaryKey(autoGenerate = true)
private int id;
private String title;
private String description;
private boolean isCompleted;
private Date createdAt;
// Getters and Setters
}
然後,我們需要建立一個吃料訪問物件(DAO),這是一個接口,定義了對茲後庫的操作方法,例如插入、查詢、更新和刪除待辦事項。
@Dao
public interface TodoDao {
@Insert
void insert(TodoItem todoItem);
@Query("SELECT FROM todo_items")
List<TodoItem> getAllTodos();
@Update
void update(TodoItem todoItem);
@Delete
void delete(TodoItem todoItem);
}
接下來,我們需要建立一個資料庫類,這個類將擴展 RoomDatabase
,並提供對DAO的訪問。
@Database(entities = {TodoItem.class}, version = 1)
public abstract class TodoDatabase extends RoomDatabase {
public abstract TodoDao todoDao();
}
在 MainActivity
中,我們需要初始化資料庫並獲取DAO的實例。這可以在 onCreate
方法中完成。
TodoDatabase db = Room.databaseBuilder(getApplicationContext(),
TodoDatabase.class, "todo_database").build();
TodoDao todoDao = db.todoDao();
現在,我們可以使用DAO來實現待辦事項的新刪修查功能。在 addTodo
方法中,我們將插入新的待辦事項到資料庫中。
public void addTodo(String title, String description) {
TodoItem newItem = new TodoItem(title, description);
new Thread(() -> todoDao.insert(newItem)).start();
}
同樣,我們可以在編輯和刪除待辦事項時使用對應的DAO方法。
最後,我們需要從資料庫中加載待辦事項並顯示在UI上。這可以通過在背景線程中查詢資料庫來實現,然後更新UI。
new Thread(() -> {
List<TodoItem> todos = todoDao.getAllTodos();
runOnUiThread(() -> {
// 更新UI
});
}).start();
通過以上步驟,我們成功地將SQLite資料庫整合到待辦事項管理APP中,實現了資料的儲存。這不僅提高了APP的可靠性,還使得使用者能夠在重新啟動APP後保留其待辦事項。在接下來的文章中,我們將進一步優化應用性能,提升使用者體驗。